home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / Video.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  36.4 KB  |  742 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Video.a
  3. ;
  4. ;    Contains:    Video Driver Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1986-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__VIDEO__') = 'UNDEFINED' THEN
  18. __VIDEO__ SET 1
  19.  
  20.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  21.     include 'Quickdraw.a'
  22.     ENDIF
  23.  
  24.  
  25. mBaseOffset                        EQU        1                    ;Id of mBaseOffset.
  26. mRowBytes                        EQU        2                    ;Video sResource parameter Id's 
  27. mBounds                            EQU        3                    ;Video sResource parameter Id's 
  28. mVersion                        EQU        4                    ;Video sResource parameter Id's 
  29. mHRes                            EQU        5                    ;Video sResource parameter Id's 
  30. mVRes                            EQU        6                    ;Video sResource parameter Id's 
  31. mPixelType                        EQU        7                    ;Video sResource parameter Id's 
  32. mPixelSize                        EQU        8                    ;Video sResource parameter Id's 
  33. mCmpCount                        EQU        9                    ;Video sResource parameter Id's 
  34. mCmpSize                        EQU        10                    ;Video sResource parameter Id's 
  35. mPlaneBytes                        EQU        11                    ;Video sResource parameter Id's 
  36. mVertRefRate                    EQU        14                    ;Video sResource parameter Id's 
  37. mVidParams                        EQU        1                    ;Video parameter block id.
  38. mTable                            EQU        2                    ;Offset to the table.
  39. mPageCnt                        EQU        3                    ;Number of pages
  40. mDevType                        EQU        4                    ;Device Type
  41. oneBitMode                        EQU        128                    ;Id of OneBitMode Parameter list.
  42. twoBitMode                        EQU        129                    ;Id of TwoBitMode Parameter list.
  43. fourBitMode                        EQU        130                    ;Id of FourBitMode Parameter list.
  44. eightBitMode                    EQU        131                    ;Id of EightBitMode Parameter list.
  45.  
  46. sixteenBitMode                    EQU        132                    ;Id of SixteenBitMode Parameter list.
  47. thirtyTwoBitMode                EQU        133                    ;Id of ThirtyTwoBitMode Parameter list.
  48. firstVidMode                    EQU        128                    ;The new, better way to do the above. 
  49. secondVidMode                    EQU        129                    ; QuickDraw only supports six video 
  50. thirdVidMode                    EQU        130                    ; at this time.      
  51. fourthVidMode                    EQU        131
  52. fifthVidMode                    EQU        132
  53. sixthVidMode                    EQU        133
  54. spGammaDir                        EQU        64
  55. spVidNamesDir                    EQU        65
  56.  
  57. ;  csTimingFormat values in VDTimingInfo 
  58. ;  look in the declaration rom for timing info 
  59.  
  60. kDeclROMtables                    EQU        'decl'
  61. ;  Size of a block of EDID (Extended Display Identification Data) 
  62.  
  63. kDDCBlockSize                    EQU        128
  64. ;  ddcBlockType constants
  65.  
  66. kDDCBlockTypeEDID                EQU        0                    ; EDID block type. 
  67. ;  ddcFlags constants
  68.  
  69. kDDCForceReadBit                EQU        0                    ; Force a new read of the EDID. 
  70. kDDCForceReadMask                EQU        $01                    ; Mask for kddcForceReadBit. 
  71.  
  72. ;  Timing mode constants for Display Manager MultiMode support
  73. ;    Corresponding    .h equates are in Video.h
  74. ;                    .a equates are in Video.a
  75. ;                    .r equates are in DepVideoEqu.r
  76. ;    
  77. ;    The second enum is the old names (for compatibility).
  78. ;    The first enum is the new names.
  79. ;
  80.  
  81.  
  82. timingInvalid                    EQU        0                    ;    Unknown timing… force user to confirm. 
  83. timingInvalid_SM_T24            EQU        8                    ;    Work around bug in SM Thunder24 card.
  84. timingApple_FixedRateLCD        EQU        42                    ;    Lump all fixed-rate LCDs into one category.
  85. timingApple_512x384_60hz        EQU        130                    ;  512x384  (60 Hz) Rubik timing. 
  86. timingApple_560x384_60hz        EQU        135                    ;  560x384  (60 Hz) Rubik-560 timing. 
  87. timingApple_640x480_67hz        EQU        140                    ;  640x480  (67 Hz) HR timing. 
  88. timingApple_640x400_67hz        EQU        145                    ;  640x400  (67 Hz) HR-400 timing. 
  89. timingVESA_640x480_60hz            EQU        150                    ;  640x480  (60 Hz) VGA timing. 
  90. timingVESA_640x480_72hz            EQU        152                    ;  640x480  (72 Hz) VGA timing. 
  91. timingVESA_640x480_75hz            EQU        154                    ;  640x480  (75 Hz) VGA timing. 
  92. timingVESA_640x480_85hz            EQU        158                    ;  640x480  (85 Hz) VGA timing. 
  93. timingGTF_640x480_120hz            EQU        159                    ;  640x480  (120 Hz) VESA Generalized Timing Formula 
  94. timingApple_640x870_75hz        EQU        160                    ;  640x870  (75 Hz) FPD timing.
  95. timingApple_640x818_75hz        EQU        165                    ;  640x818  (75 Hz) FPD-818 timing.
  96. timingApple_832x624_75hz        EQU        170                    ;  832x624  (75 Hz) GoldFish timing.
  97. timingVESA_800x600_56hz            EQU        180                    ;  800x600  (56 Hz) SVGA timing. 
  98. timingVESA_800x600_60hz            EQU        182                    ;  800x600  (60 Hz) SVGA timing. 
  99. timingVESA_800x600_72hz            EQU        184                    ;  800x600  (72 Hz) SVGA timing. 
  100. timingVESA_800x600_75hz            EQU        186                    ;  800x600  (75 Hz) SVGA timing. 
  101. timingVESA_800x600_85hz            EQU        188                    ;  800x600  (85 Hz) SVGA timing. 
  102. timingVESA_1024x768_60hz        EQU        190                    ; 1024x768  (60 Hz) VESA 1K-60Hz timing. 
  103. timingVESA_1024x768_70hz        EQU        200                    ; 1024x768  (70 Hz) VESA 1K-70Hz timing. 
  104. timingVESA_1024x768_75hz        EQU        204                    ; 1024x768  (75 Hz) VESA 1K-75Hz timing (very similar to timingApple_1024x768_75hz). 
  105. timingVESA_1024x768_85hz        EQU        208                    ; 1024x768  (85 Hz) VESA timing. 
  106. timingApple_1024x768_75hz        EQU        210                    ; 1024x768  (75 Hz) Apple 19" RGB. 
  107. timingApple_1152x870_75hz        EQU        220                    ; 1152x870  (75 Hz) Apple 21" RGB. 
  108. timingAppleNTSC_ST                EQU        230                    ;  512x384  (60 Hz, interlaced, non-convolved). 
  109. timingAppleNTSC_FF                EQU        232                    ;  640x480  (60 Hz, interlaced, non-convolved). 
  110. timingAppleNTSC_STconv            EQU        234                    ;  512x384  (60 Hz, interlaced, convolved). 
  111. timingAppleNTSC_FFconv            EQU        236                    ;  640x480  (60 Hz, interlaced, convolved). 
  112. timingApplePAL_ST                EQU        238                    ;  640x480  (50 Hz, interlaced, non-convolved). 
  113. timingApplePAL_FF                EQU        240                    ;  768x576  (50 Hz, interlaced, non-convolved). 
  114. timingApplePAL_STconv            EQU        242                    ;  640x480  (50 Hz, interlaced, convolved). 
  115. timingApplePAL_FFconv            EQU        244                    ;  768x576  (50 Hz, interlaced, convolved). 
  116. timingVESA_1280x960_75hz        EQU        250                    ; 1280x960  (75 Hz) 
  117. timingVESA_1280x960_60hz        EQU        252                    ; 1280x960  (60 Hz) 
  118. timingVESA_1280x960_85hz        EQU        254                    ; 1280x960  (85 Hz) 
  119. timingVESA_1280x1024_60hz        EQU        260                    ; 1280x1024 (60 Hz) 
  120. timingVESA_1280x1024_75hz        EQU        262                    ; 1280x1024 (75 Hz) 
  121. timingVESA_1280x1024_85hz        EQU        268                    ; 1280x1024 (85 Hz) 
  122. timingVESA_1600x1200_60hz        EQU        280                    ; 1600x1200 (60 Hz) VESA timing. 
  123. timingVESA_1600x1200_65hz        EQU        282                    ; 1600x1200 (65 Hz) VESA timing. 
  124. timingVESA_1600x1200_70hz        EQU        284                    ; 1600x1200 (70 Hz) VESA timing. 
  125. timingVESA_1600x1200_75hz        EQU        286                    ; 1600x1200 (75 Hz) VESA timing (pixel clock is 189.2 Mhz dot clock). 
  126. timingVESA_1600x1200_80hz        EQU        288                    ; 1600x1200 (80 Hz) VESA timing (pixel clock is 216>? Mhz dot clock) - proposed only. 
  127. timingVESA_1600x1200_85hz        EQU        289                    ; 1600x1200 (85 Hz) VESA timing (pixel clock is 229.5 Mhz dot clock). 
  128. timingSMPTE240M_60hz            EQU        400                    ; 60Hz V, 33.75KHz H, interlaced timing, 16:9 aspect, typical resolution of 1920x1035. 
  129. timingFilmRate_48hz                EQU        410                    ; 48Hz V, 25.20KHz H, non-interlaced timing, typical resolution of 640x480. 
  130. timingSony_1600x1024_76hz        EQU        500                    ; 1600x1024 (76 Hz) Sony timing (pixel clock is 170.447 Mhz dot clock). 
  131. timingSony_1920x1080_60hz        EQU        510                    ; 1920x1080 (60 Hz) Sony timing (pixel clock is 159.84 Mhz dot clock). 
  132. timingSony_1920x1080_72hz        EQU        520                    ; 1920x1080 (72 Hz) Sony timing (pixel clock is 216.023 Mhz dot clock). 
  133. timingSony_1900x1200_74hz        EQU        530                    ; 1900x1200 (74 Hz) Sony timing (pixel clock is 236.25 Mhz dot clock). 
  134. timingSony_1900x1200_76hz        EQU        540                    ; 1900x1200 (76 Hz) Sony timing (pixel clock is 245.48 Mhz dot clock). 
  135.  
  136. ;  Deprecated timing names.
  137.  
  138. timingApple12                    EQU        130
  139. timingApple12x                    EQU        135
  140. timingApple13                    EQU        140
  141. timingApple13x                    EQU        145
  142. timingAppleVGA                    EQU        150
  143. timingApple15                    EQU        160
  144. timingApple15x                    EQU        165
  145. timingApple16                    EQU        170
  146. timingAppleSVGA                    EQU        180
  147. timingApple1Ka                    EQU        190
  148. timingApple1Kb                    EQU        200
  149. timingApple19                    EQU        210
  150. timingApple21                    EQU        220
  151. ;  csConnectFlags values in VDDisplayConnectInfo 
  152.  
  153. kAllModesValid                    EQU        0                    ; All modes not trimmed by primary init are good close enough to try 
  154. kAllModesSafe                    EQU        1                    ; All modes not trimmed by primary init are know to be safe 
  155. kReportsTagging                    EQU        2                    ; Can detect tagged displays (to identify smart monitors) 
  156. kHasDirectConnection            EQU        3                    ; True implies that driver can talk directly to device (e.g. serial data link via sense lines) 
  157. kIsMonoDev                        EQU        4                    ; Says whether there’s an RGB (0) or Monochrome (1) connection. 
  158. kUncertainConnection            EQU        5                    ; There may not be a display (no sense lines?). 
  159. kTaggingInfoNonStandard            EQU        6                    ; Set when csConnectTaggedType/csConnectTaggedData are non-standard (i.e., not the Apple CRT sense codes). 
  160. kReportsDDCConnection            EQU        7                    ; Card can do ddc (set kHasDirectConnect && kHasDDCConnect if you actually found a ddc display). 
  161. kHasDDCConnection                EQU        8                    ; Card has ddc connect now. 
  162. kConnectionInactive                EQU        9                    ; Set when the connection is NOT currently active (generally used in a multiconnection environment). 
  163. kDependentConnection            EQU        10                    ; Set when some ascpect of THIS connection depends on another (will generally be set in a kModeSimulscan environment). 
  164. kBuiltInConnection                EQU        11                    ; Set when connection is KNOWN to be built-in (this is not the same as kHasDirectConnection). 
  165. kOverrideConnection                EQU        12                    ; Set when the reported connection is not the true one, but is one that has been forced through a SetConnection call 
  166. kFastCheckForDDC                EQU        13                    ; Set when all 3 are true: 1) sense codes indicate DDC display could be attached 2) attempted fast check 3) DDC failed 
  167.  
  168. ;  csDisplayType values in VDDisplayConnectInfo 
  169.  
  170. kUnknownConnect                    EQU        1                    ; Not sure how we’ll use this, but seems like a good idea. 
  171. kPanelConnect                    EQU        2                    ; For use with fixed-in-place LCD panels. 
  172. kPanelTFTConnect                EQU        2                    ; Alias for kPanelConnect 
  173. kFixedModeCRTConnect            EQU        3                    ;  For use with fixed-mode (i.e., very limited range) displays. 
  174. kMultiModeCRT1Connect            EQU        4                    ; 320x200 maybe, 12" maybe, 13" (default), 16" certain, 19" maybe, 21" maybe 
  175. kMultiModeCRT2Connect            EQU        5                    ; 320x200 maybe, 12" maybe, 13" certain, 16" (default), 19" certain, 21" maybe 
  176. kMultiModeCRT3Connect            EQU        6                    ; 320x200 maybe, 12" maybe, 13" certain, 16" certain, 19" default, 21" certain 
  177. kMultiModeCRT4Connect            EQU        7                    ; Expansion to large multi mode (not yet used) 
  178. kModelessConnect                EQU        8                    ; Expansion to modeless model (not yet used) 
  179. kFullPageConnect                EQU        9                    ; 640x818 (to get 8bpp in 512K case) and 640x870 (these two only) 
  180. kVGAConnect                        EQU        10                    ; 640x480 VGA default -- question everything else 
  181. kNTSCConnect                    EQU        11                    ; NTSC ST (default), FF, STconv, FFconv 
  182. kPALConnect                        EQU        12                    ; PAL ST (default), FF, STconv, FFconv 
  183. kHRConnect                        EQU        13                    ; Straight-6 connect -- 640x480 and 640x400 (to get 8bpp in 256K case) (these two only) 
  184. kPanelFSTNConnect                EQU        14                    ; For use with fixed-in-place LCD FSTN (aka “Supertwist”) panels 
  185. kMonoTwoPageConnect                EQU        15                    ; 1152x870 Apple color two-page display 
  186. kColorTwoPageConnect            EQU        16                    ; 1152x870 Apple B&W two-page display 
  187. kColor16Connect                    EQU        17                    ; 832x624 Apple B&W two-page display 
  188. kColor19Connect                    EQU        18                    ; 1024x768 Apple B&W two-page display 
  189. kGenericCRT                        EQU        19                    ; Indicates nothing except that connection is CRT in nature. 
  190. kGenericLCD                        EQU        20                    ; Indicates nothing except that connection is LCD in nature. 
  191. kDDCConnect                        EQU        21                    ; DDC connection, always set kHasDDCConnection 
  192. ;  csTimingFlags values in VDTimingInfoRec 
  193.  
  194. kModeValid                        EQU        0                    ; Says that this mode should NOT be trimmed. 
  195. kModeSafe                        EQU        1                    ; This mode does not need confirmation 
  196. kModeDefault                    EQU        2                    ; This is the default mode for this type of connection 
  197. kModeShowNow                    EQU        3                    ; This mode should always be shown (even though it may require a confirm) 
  198. kModeNotResize                    EQU        4                    ; This mode should not be used to resize the display (eg. mode selects a different connector on card) 
  199. kModeRequiresPan                EQU        5                    ; This mode has more pixels than are actually displayed 
  200. kModeInterlaced                    EQU        6                    ; This mode is interlaced (single pixel lines look bad). 
  201. kModeShowNever                    EQU        7                    ; This mode should not be shown in the user interface. 
  202. kModeSimulscan                    EQU        8                    ; Indicates that more than one display connection can be driven from a single framebuffer controller. 
  203. kModeNotPreset                    EQU        9                    ; Indicates that the timing is not a factory preset for the current display (geometry may need correction) 
  204. kModeBuiltIn                    EQU        10                    ; Indicates that the display mode is for the built-in connect only (on multiconnect devices like the PB 3400) Only the driver is quieried 
  205. ;  csDepthFlags in VDVideoParametersInfoRec 
  206.  
  207. kDepthDependent                    EQU        0                    ; Says that this depth mode may cause dependent changes in other framebuffers (and . 
  208. ;  csResolutionFlags bit flags for VDResolutionInfoRec 
  209.  
  210. kResolutionHasMultipleDepthSizes EQU    0                    ; Says that this mode has different csHorizontalPixels, csVerticalLines at different depths (usually slightly larger at lower depths) 
  211.  
  212.  
  213.                                                             ;    Power Mode constants for VDPowerStateRec.powerState.  Note the numeric order does not match the power state order 
  214. kAVPowerOff                        EQU        0                    ; Power fully off
  215. kAVPowerStandby                    EQU        1
  216. kAVPowerSuspend                    EQU        2
  217. kAVPowerOn                        EQU        3
  218.  
  219.                                                             ;    Power Mode masks and bits for VDPowerStateRec.powerFlags.    
  220. kPowerStateNeedsRefresh            EQU        0                    ; When leaving this power mode, a display will need refreshing    
  221. kPowerStateSleepAwareBit        EQU        1                    ; if gestaltPCCardDockingSelectorFix, Docking mgr checks this bit before checking kPowerStateSleepAllowedBit 
  222. kPowerStateSleepForbiddenBit    EQU        2                    ; if kPowerStateSleepAwareBit, Docking mgr checks this bit before sleeping 
  223. kPowerStateNeedsRefreshMask        EQU        $00000001
  224. kPowerStateSleepAwareMask        EQU        $00000002
  225. kPowerStateSleepForbiddenMask    EQU        $00000004
  226.  
  227.  
  228.                                                             ; Control Codes 
  229. cscReset                        EQU        0
  230. cscKillIO                        EQU        1
  231. cscSetMode                        EQU        2
  232. cscSetEntries                    EQU        3
  233. cscSetGamma                        EQU        4
  234. cscGrayPage                        EQU        5
  235. cscGrayScreen                    EQU        5
  236. cscSetGray                        EQU        6
  237. cscSetInterrupt                    EQU        7
  238. cscDirectSetEntries                EQU        8
  239. cscSetDefaultMode                EQU        9
  240. cscSwitchMode                    EQU        10
  241. cscSetSync                        EQU        11
  242. cscSavePreferredConfiguration    EQU        16
  243. cscSetHardwareCursor            EQU        22
  244. cscDrawHardwareCursor            EQU        23
  245. cscSetConvolution                EQU        24
  246. cscSetPowerState                EQU        25
  247. cscPrivateControlCall            EQU        26                    ; Takes a VDPrivateSelectorDataRec
  248. cscSetMultiConnect                EQU        28                    ; From a GDI point of view, this call should be implemented completely in the HAL and not at all in the core.
  249. cscSetClutBehavior                EQU        29                    ; Takes a VDClutBehavior 
  250. cscUnusedCall                    EQU        127                    ; This call used to expend the scrn resource.  Its imbedded data contains more control info 
  251.  
  252.                                                             ; Status Codes 
  253. cscGetMode                        EQU        2
  254. cscGetEntries                    EQU        3
  255. cscGetPageCnt                    EQU        4
  256. cscGetPages                        EQU        4                    ; This is what C&D 2 calls it. 
  257. cscGetPageBase                    EQU        5
  258. cscGetBaseAddr                    EQU        5                    ; This is what C&D 2 calls it. 
  259. cscGetGray                        EQU        6
  260. cscGetInterrupt                    EQU        7
  261. cscGetGamma                        EQU        8
  262. cscGetDefaultMode                EQU        9
  263. cscGetCurMode                    EQU        10
  264. cscGetSync                        EQU        11
  265. cscGetConnection                EQU        12                    ; Return information about the connection to the display 
  266. cscGetModeTiming                EQU        13                    ; Return timing info for a mode 
  267. cscGetModeBaseAddress            EQU        14                    ; Return base address information about a particular mode 
  268. cscGetScanProc                    EQU        15                    ; QuickTime scan chasing routine 
  269. cscGetPreferredConfiguration    EQU        16
  270. cscGetNextResolution            EQU        17
  271. cscGetVideoParameters            EQU        18
  272. cscGetGammaInfoList                EQU        20
  273. cscRetrieveGammaTable            EQU        21
  274. cscSupportsHardwareCursor        EQU        22
  275. cscGetHardwareCursorDrawState    EQU        23
  276. cscGetConvolution                EQU        24
  277. cscGetPowerState                EQU        25
  278. cscPrivateStatusCall            EQU        26                    ; Takes a VDPrivateSelectorDataRec
  279. cscGetDDCBlock                    EQU        27                    ; Takes a VDDDCBlockRec  
  280. cscGetMultiConnect                EQU        28                    ; From a GDI point of view, this call should be implemented completely in the HAL and not at all in the core.
  281. cscGetClutBehavior                EQU        29                    ; Takes a VDClutBehavior 
  282. ;  Bit definitions for the Get/Set Sync call
  283.  
  284. kDisableHorizontalSyncBit        EQU        0
  285. kDisableVerticalSyncBit            EQU        1
  286. kDisableCompositeSyncBit        EQU        2
  287. kEnableSyncOnBlue                EQU        3
  288. kEnableSyncOnGreen                EQU        4
  289. kEnableSyncOnRed                EQU        5
  290. kNoSeparateSyncControlBit        EQU        6
  291. kTriStateSyncBit                EQU        7
  292. kHorizontalSyncMask                EQU        $01
  293. kVerticalSyncMask                EQU        $02
  294. kCompositeSyncMask                EQU        $04
  295. kDPMSSyncMask                    EQU        $07
  296. kTriStateSyncMask                EQU        $80
  297. kSyncOnBlueMask                    EQU        $08
  298. kSyncOnGreenMask                EQU        $10
  299. kSyncOnRedMask                    EQU        $20
  300. kSyncOnMask                        EQU        $38
  301.  
  302.                                                             ;    Power Mode constants for translating DPMS modes to Get/SetSync calls.    
  303. kDPMSSyncOn                        EQU        0
  304. kDPMSSyncStandby                EQU        1
  305. kDPMSSyncSuspend                EQU        2
  306. kDPMSSyncOff                    EQU        7
  307. ;  Bit definitions for the Get/Set Convolution call
  308.  
  309. kConvolved                        EQU        0
  310. kLiveVideoPassThru                EQU        1
  311. kConvolvedMask                    EQU        $01
  312. kLiveVideoPassThruMask            EQU        $02
  313.  
  314. VPBlock                    RECORD 0
  315. vpBaseOffset             ds.l    1                ; offset: $0 (0)        ; Offset to page zero of video RAM (From minorBaseOS).
  316. vpRowBytes                 ds.w    1                ; offset: $4 (4)        ; Width of each row of video memory.
  317. vpBounds                 ds        Rect            ; offset: $6 (6)        ; BoundsRect for the video display (gives dimensions).
  318. vpVersion                 ds.w    1                ; offset: $E (14)        ; PixelMap version number.
  319. vpPackType                 ds.w    1                ; offset: $10 (16)
  320. vpPackSize                 ds.l    1                ; offset: $12 (18)
  321. vpHRes                     ds.l    1                ; offset: $16 (22)        ; Horizontal resolution of the device (pixels per inch).
  322. vpVRes                     ds.l    1                ; offset: $1A (26)        ; Vertical resolution of the device (pixels per inch).
  323. vpPixelType                 ds.w    1                ; offset: $1E (30)        ; Defines the pixel type.
  324. vpPixelSize                 ds.w    1                ; offset: $20 (32)        ; Number of bits in pixel.
  325. vpCmpCount                 ds.w    1                ; offset: $22 (34)        ; Number of components in pixel.
  326. vpCmpSize                 ds.w    1                ; offset: $24 (36)        ; Number of bits per component
  327. vpPlaneBytes             ds.l    1                ; offset: $26 (38)        ; Offset from one plane to the next.
  328. sizeof                     EQU *                    ; size:   $2A (42)
  329.                         ENDR
  330. ; typedef struct VPBlock *                VPBlockPtr
  331.  
  332. VDEntryRecord            RECORD 0
  333. csTable                     ds.l    1                ; offset: $0 (0)        ; (long) pointer to color table entry=value, r,g,b:INTEGER
  334. sizeof                     EQU *                    ; size:   $4 (4)
  335.                         ENDR
  336. ; typedef struct VDEntryRecord *        VDEntRecPtr
  337.  
  338. ;  Parm block for SetGray control call 
  339. VDGrayRecord            RECORD 0
  340. csMode                     ds.b    1                ; offset: $0 (0)        ; Same as GDDevType value (0=color, 1=mono)
  341. filler                     ds.b    1                ; offset: $1 (1)
  342. sizeof                     EQU *                    ; size:   $2 (2)
  343.                         ENDR
  344. ; typedef struct VDGrayRecord *            VDGrayPtr
  345.  
  346. ;  Parm block for SetInterrupt call 
  347. VDFlagRecord            RECORD 0
  348. csMode                     ds.b    1                ; offset: $0 (0)
  349. filler                     ds.b    1                ; offset: $1 (1)
  350. sizeof                     EQU *                    ; size:   $2 (2)
  351.                         ENDR
  352. ; typedef struct VDFlagRecord *            VDFlagRecPtr
  353.  
  354. ;  Parm block for SetEntries control call 
  355. VDSetEntryRecord        RECORD 0
  356. csTable                     ds.l    1                ; offset: $0 (0)        ; Pointer to an array of color specs
  357. csStart                     ds.w    1                ; offset: $4 (4)        ; Which spec in array to start with, or -1
  358. csCount                     ds.w    1                ; offset: $6 (6)        ; Number of color spec entries to set
  359. sizeof                     EQU *                    ; size:   $8 (8)
  360.                         ENDR
  361. ; typedef struct VDSetEntryRecord *        VDSetEntryPtr
  362.  
  363. ;  Parm block for SetGamma control call 
  364. VDGammaRecord            RECORD 0
  365. csGTable                 ds.l    1                ; offset: $0 (0)        ; pointer to gamma table
  366. sizeof                     EQU *                    ; size:   $4 (4)
  367.                         ENDR
  368. ; typedef struct VDGammaRecord *        VDGamRecPtr
  369.  
  370. VDBaseAddressInfoRec    RECORD 0
  371. csDevData                 ds.l    1                ; offset: $0 (0)        ;  LONGINT - (long) timing mode 
  372. csDevBase                 ds.l    1                ; offset: $4 (4)        ;  LONGINT - (long) base address of the mode 
  373. csModeReserved             ds.w    1                ; offset: $8 (8)        ;  INTEGER - (short) will some day be the depth 
  374. csModeBase                 ds.l    1                ; offset: $A (10)        ;  LONGINT - (long) reserved 
  375. sizeof                     EQU *                    ; size:   $E (14)
  376.                         ENDR
  377. ; typedef struct VDBaseAddressInfoRec *    VDBaseAddressInfoPtr
  378.  
  379. VDSwitchInfoRec            RECORD 0
  380. csMode                     ds.w    1                ; offset: $0 (0)        ; (word) mode depth
  381. csData                     ds.l    1                ; offset: $2 (2)        ; (long) functional sResource of mode
  382. csPage                     ds.w    1                ; offset: $6 (6)        ; (word) page to switch in
  383. csBaseAddr                 ds.l    1                ; offset: $8 (8)        ; (long) base address of page (return value)
  384. csReserved                 ds.l    1                ; offset: $C (12)        ; (long) Reserved (set to 0) 
  385. sizeof                     EQU *                    ; size:   $10 (16)
  386.                         ENDR
  387. ; typedef struct VDSwitchInfoRec *        VDSwitchInfoPtr
  388.  
  389. VDTimingInfoRec            RECORD 0
  390. csTimingMode             ds.l    1                ; offset: $0 (0)        ;  LONGINT - (long) timing mode (a la InitGDevice) 
  391. csTimingReserved         ds.l    1                ; offset: $4 (4)        ;  LONGINT - (long) reserved 
  392. csTimingFormat             ds.l    1                ; offset: $8 (8)        ;  LONGINT - (long) what format is the timing info 
  393. csTimingData             ds.l    1                ; offset: $C (12)        ;  LONGINT - (long) data supplied by driver 
  394. csTimingFlags             ds.l    1                ; offset: $10 (16)        ;  LONGINT - (long) mode within device 
  395. sizeof                     EQU *                    ; size:   $14 (20)
  396.                         ENDR
  397. ; typedef struct VDTimingInfoRec *        VDTimingInfoPtr
  398.  
  399. VDDisplayConnectInfoRec    RECORD 0
  400. csDisplayType             ds.w    1                ; offset: $0 (0)        ;  INTEGER - (word) Type of display connected 
  401. csConnectTaggedType         ds.b    1                ; offset: $2 (2)        ;  BYTE - type of tagging 
  402. csConnectTaggedData         ds.b    1                ; offset: $3 (3)        ;  BYTE - tagging data 
  403. csConnectFlags             ds.l    1                ; offset: $4 (4)        ;  LONGINT - (long) tell us about the connection 
  404. csDisplayComponent         ds.l    1                ; offset: $8 (8)        ;  LONGINT - (long) if the card has a direct connection to the display, it returns the display component here (FUTURE) 
  405. csConnectReserved         ds.l    1                ; offset: $C (12)        ;  LONGINT - (long) reserved 
  406. sizeof                     EQU *                    ; size:   $10 (16)
  407.                         ENDR
  408. ; typedef struct VDDisplayConnectInfoRec * VDDisplayConnectInfoPtr
  409.  
  410. VDMultiConnectInfoRec    RECORD 0
  411. csDisplayCountOrNumber     ds.l    1                ; offset: $0 (0)        ;  For GetMultiConnect, returns count n of 1..n connections; otherwise, indicates the ith connection.
  412. csConnectInfo             ds        VDDisplayConnectInfoRec ; offset: $4 (4) ;  Standard VDDisplayConnectionInfo for connection i.
  413. sizeof                     EQU *                    ; size:   $14 (20)
  414.                         ENDR
  415. ; typedef struct VDMultiConnectInfoRec * VDMultiConnectInfoPtr
  416.  
  417. ;  RawSenseCode
  418. ;    This abstract data type is not exactly abstract.  Rather, it is merely enumerated constants
  419. ;    for the possible raw sense code values when 'standard' sense code hardware is implemented.
  420. ;
  421. ;    For 'standard' sense code hardware, the raw sense is obtained as follows:
  422. ;        • Instruct the frame buffer controller NOT to actively drive any of the monitor sense lines
  423. ;        • Read the state of the monitor sense lines 2, 1, and 0.  (2 is the MSB, 0 the LSB)
  424. ;
  425. ;    IMPORTANT Note: 
  426. ;    When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is FALSE, then these constants 
  427. ;    are valid 'csConnectTaggedType' values in 'VDDisplayConnectInfo' 
  428. ;
  429. ;
  430.  
  431. ; typedef unsigned char                 RawSenseCode
  432.  
  433.  
  434. kRSCZero                        EQU        0
  435. kRSCOne                            EQU        1
  436. kRSCTwo                            EQU        2
  437. kRSCThree                        EQU        3
  438. kRSCFour                        EQU        4
  439. kRSCFive                        EQU        5
  440. kRSCSix                            EQU        6
  441. kRSCSeven                        EQU        7
  442.  
  443. ;  ExtendedSenseCode
  444. ;    This abstract data type is not exactly abstract.  Rather, it is merely enumerated constants
  445. ;    for the values which are possible when the extended sense algorithm is applied to hardware
  446. ;    which implements 'standard' sense code hardware.
  447. ;
  448. ;     For 'standard' sense code hardware, the extended sense code algorithm is as follows:
  449. ;    (Note:  as described here, sense line 'A' corresponds to '2', 'B' to '1', and 'C' to '0')
  450. ;        • Drive sense line 'A' low and read the values of 'B' and 'C'.  
  451. ;        • Drive sense line 'B' low and read the values of 'A' and 'C'.
  452. ;        • Drive sense line 'C' low and read the values of 'A' and 'B'.
  453. ;
  454. ;    In this way, a six-bit number of the form BC/AC/AB is generated. 
  455. ;
  456. ;    IMPORTANT Note: 
  457. ;    When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is FALSE, then these constants 
  458. ;    are valid 'csConnectTaggedData' values in 'VDDisplayConnectInfo' 
  459. ;
  460. ;
  461.  
  462. ; typedef unsigned char                 ExtendedSenseCode
  463.  
  464.  
  465. kESCZero21Inch                    EQU        $00                    ; 21" RGB                                 
  466. kESCOnePortraitMono                EQU        $14                    ; Portrait Monochrome                     
  467. kESCTwo12Inch                    EQU        $21                    ; 12" RGB                                
  468. kESCThree21InchRadius            EQU        $31                    ; 21" RGB (Radius)                        
  469. kESCThree21InchMonoRadius        EQU        $34                    ; 21" Monochrome (Radius)                 
  470. kESCThree21InchMono                EQU        $35                    ; 21" Monochrome                        
  471. kESCFourNTSC                    EQU        $0A                    ; NTSC                                 
  472. kESCFivePortrait                EQU        $1E                    ; Portrait RGB                         
  473. kESCSixMSB1                        EQU        $03                    ; MultiScan Band-1 (12" thru 1Six")    
  474. kESCSixMSB2                        EQU        $0B                    ; MultiScan Band-2 (13" thru 19")        
  475. kESCSixMSB3                        EQU        $23                    ; MultiScan Band-3 (13" thru 21")        
  476. kESCSixStandard                    EQU        $2B                    ; 13"/14" RGB or 12" Monochrome        
  477. kESCSevenPAL                    EQU        $00                    ; PAL                                    
  478. kESCSevenNTSC                    EQU        $14                    ; NTSC                                 
  479. kESCSevenVGA                    EQU        $17                    ; VGA                                     
  480. kESCSeven16Inch                    EQU        $2D                    ; 16" RGB (GoldFish)                      
  481. kESCSevenPALAlternate            EQU        $30                    ; PAL (Alternate)                         
  482. kESCSeven19Inch                    EQU        $3A                    ; Third-Party 19”                        
  483. kESCSevenDDC                    EQU        $3E                    ; DDC display                            
  484. kESCSevenNoDisplay                EQU        $3F                    ; No display connected                 
  485. ;  DepthMode
  486. ;    This abstract data type is used to to reference RELATIVE pixel depths.
  487. ;    Its definition is largely derived from its past usage, analogous to 'xxxVidMode'
  488. ;
  489. ;    Bits per pixel DOES NOT directly map to 'DepthMode'  For example, on some
  490. ;    graphics hardware, 'kDepthMode1' may represent 1 BPP, whereas on other
  491. ;    hardware, 'kDepthMode1' may represent 8BPP.
  492. ;
  493. ;    DepthMode IS considered to be ordinal, i.e., operations such as <, >, ==, etc.
  494. ;    behave as expected.  The values of the constants which comprise the set are such
  495. ;    that 'kDepthMode4 < kDepthMode6' behaves as expected.
  496. ;
  497.  
  498. ; typedef unsigned short                 DepthMode
  499.  
  500.  
  501. kDepthMode1                        EQU        128
  502. kDepthMode2                        EQU        129
  503. kDepthMode3                        EQU        130
  504. kDepthMode4                        EQU        131
  505. kDepthMode5                        EQU        132
  506. kDepthMode6                        EQU        133
  507.  
  508. kFirstDepthMode                    EQU        128                    ; These constants are obsolete, and just included    
  509. kSecondDepthMode                EQU        129                    ; for clients that have converted to the above        
  510. kThirdDepthMode                    EQU        130                    ; kDepthModeXXX constants.                            
  511. kFourthDepthMode                EQU        131
  512. kFifthDepthMode                    EQU        132
  513. kSixthDepthMode                    EQU        133
  514.  
  515. VDPageInfo                RECORD 0
  516. csMode                     ds.w    1                ; offset: $0 (0)        ; (word) mode within device
  517. csData                     ds.l    1                ; offset: $2 (2)        ; (long) data supplied by driver
  518. csPage                     ds.w    1                ; offset: $6 (6)        ; (word) page to switch in
  519. csBaseAddr                 ds.l    1                ; offset: $8 (8)        ; (long) base address of page
  520. sizeof                     EQU *                    ; size:   $C (12)
  521.                         ENDR
  522. ; typedef struct VDPageInfo *            VDPgInfoPtr
  523.  
  524. VDSizeInfo                RECORD 0
  525. csHSize                     ds.w    1                ; offset: $0 (0)        ; (word) desired/returned h size
  526. csHPos                     ds.w    1                ; offset: $2 (2)        ; (word) desired/returned h position
  527. csVSize                     ds.w    1                ; offset: $4 (4)        ; (word) desired/returned v size
  528. csVPos                     ds.w    1                ; offset: $6 (6)        ; (word) desired/returned v position
  529. sizeof                     EQU *                    ; size:   $8 (8)
  530.                         ENDR
  531. ; typedef struct VDSizeInfo *            VDSzInfoPtr
  532.  
  533. VDSettings                RECORD 0
  534. csParamCnt                 ds.w    1                ; offset: $0 (0)        ; (word) number of params
  535. csBrightMax                 ds.w    1                ; offset: $2 (2)        ; (word) max brightness
  536. csBrightDef                 ds.w    1                ; offset: $4 (4)        ; (word) default brightness
  537. csBrightVal                 ds.w    1                ; offset: $6 (6)        ; (word) current brightness
  538. csCntrstMax                 ds.w    1                ; offset: $8 (8)        ; (word) max contrast
  539. csCntrstDef                 ds.w    1                ; offset: $A (10)        ; (word) default contrast
  540. csCntrstVal                 ds.w    1                ; offset: $C (12)        ; (word) current contrast
  541. csTintMax                 ds.w    1                ; offset: $E (14)        ; (word) max tint
  542. csTintDef                 ds.w    1                ; offset: $10 (16)        ; (word) default tint
  543. csTintVal                 ds.w    1                ; offset: $12 (18)        ; (word) current tint
  544. csHueMax                 ds.w    1                ; offset: $14 (20)        ; (word) max hue
  545. csHueDef                 ds.w    1                ; offset: $16 (22)        ; (word) default hue
  546. csHueVal                 ds.w    1                ; offset: $18 (24)        ; (word) current hue
  547. csHorizDef                 ds.w    1                ; offset: $1A (26)        ; (word) default horizontal
  548. csHorizVal                 ds.w    1                ; offset: $1C (28)        ; (word) current horizontal
  549. csHorizMax                 ds.w    1                ; offset: $1E (30)        ; (word) max horizontal
  550. csVertDef                 ds.w    1                ; offset: $20 (32)        ; (word) default vertical
  551. csVertVal                 ds.w    1                ; offset: $22 (34)        ; (word) current vertical
  552. csVertMax                 ds.w    1                ; offset: $24 (36)        ; (word) max vertical
  553. sizeof                     EQU *                    ; size:   $26 (38)
  554.                         ENDR
  555. ; typedef struct VDSettings *            VDSettingsPtr
  556.  
  557. VDDefMode                RECORD 0
  558. csID                     ds.b    1                ; offset: $0 (0)
  559. filler                     ds.b    1                ; offset: $1 (1)
  560. sizeof                     EQU *                    ; size:   $2 (2)
  561.                         ENDR
  562. ; typedef struct VDDefMode *            VDDefModePtr
  563.  
  564. VDSyncInfoRec            RECORD 0
  565. csMode                     ds.b    1                ; offset: $0 (0)
  566. csFlags                     ds.b    1                ; offset: $1 (1)
  567. sizeof                     EQU *                    ; size:   $2 (2)
  568.                         ENDR
  569. ; typedef struct VDSyncInfoRec *        VDSyncInfoPtr
  570.  
  571. ; typedef unsigned long                 DisplayModeID
  572.  
  573. ; typedef unsigned long                 VideoDeviceType
  574.  
  575. ; typedef unsigned long                 GammaTableID
  576.  
  577. ;  Constants for the GetNextResolution call 
  578.  
  579. kDisplayModeIDCurrent            EQU        $00                    ; Reference the Current DisplayModeID 
  580. kDisplayModeIDInvalid            EQU        $FFFFFFFF            ; A bogus DisplayModeID in all cases 
  581. kDisplayModeIDFindFirstResolution EQU    $FFFFFFFE            ; Used in cscGetNextResolution to reset iterator 
  582. kDisplayModeIDNoMoreResolutions    EQU        $FFFFFFFD            ; Used in cscGetNextResolution to indicate End Of List 
  583. ;  Constants for the GetGammaInfoList call 
  584.  
  585. kGammaTableIDFindFirst            EQU        $FFFFFFFE            ; Get the first gamma table ID 
  586. kGammaTableIDNoMoreTables        EQU        $FFFFFFFD            ; Used to indicate end of list 
  587. kGammaTableIDSpecific            EQU        $00                    ; Return the info for the given table id 
  588. ;  Constants for GetMultiConnect call
  589.  
  590. kGetConnectionCount                EQU        $FFFFFFFF            ; Used to get the number of possible connections in a “multi-headed” framebuffer environment.
  591. kActivateConnection                EQU        $00                    ; Used for activating a connection (csConnectFlags value).
  592. kDeactivateConnection            EQU        $0200                ; Used for deactivating a connection (csConnectFlags value.)
  593. VDResolutionInfoRec        RECORD 0
  594. csPreviousDisplayModeID     ds.l    1                ; offset: $0 (0)        ;  ID of the previous resolution in a chain 
  595. csDisplayModeID             ds.l    1                ; offset: $4 (4)        ;  ID of the next resolution 
  596. csHorizontalPixels         ds.l    1                ; offset: $8 (8)        ;  # of pixels in a horizontal line at the max depth 
  597. csVerticalLines             ds.l    1                ; offset: $C (12)        ;  # of lines in a screen at the max depth 
  598. csRefreshRate             ds.l    1                ; offset: $10 (16)        ;  Vertical Refresh Rate in Hz 
  599. csMaxDepthMode             ds.w    1                ; offset: $14 (20)        ;  0x80-based number representing max bit depth 
  600. csResolutionFlags         ds.l    1                ; offset: $16 (22)        ;  Reserved - flag bits 
  601. csReserved                 ds.l    1                ; offset: $1A (26)        ;  Reserved 
  602. sizeof                     EQU *                    ; size:   $1E (30)
  603.                         ENDR
  604. ; typedef struct VDResolutionInfoRec *    VDResolutionInfoPtr
  605.  
  606. VDVideoParametersInfoRec RECORD 0
  607. csDisplayModeID             ds.l    1                ; offset: $0 (0)        ;  the ID of the resolution we want info on 
  608. csDepthMode                 ds.w    1                ; offset: $4 (4)        ;  The bit depth we want the info on (0x80 based) 
  609. csVPBlockPtr             ds.l    1                ; offset: $6 (6)        ;  Pointer to a video parameter block 
  610. csPageCount                 ds.l    1                ; offset: $A (10)        ;  Number of pages supported by the resolution 
  611. csDeviceType             ds.l    1                ; offset: $E (14)        ;  Device Type:  Direct, Fixed or CLUT; 
  612. csDepthFlags             ds.l    1                ; offset: $12 (18)        ;  Flags 
  613. sizeof                     EQU *                    ; size:   $16 (22)
  614.                         ENDR
  615. ; typedef struct VDVideoParametersInfoRec * VDVideoParametersInfoPtr
  616.  
  617. VDGammaInfoRec            RECORD 0
  618. csLastGammaID             ds.l    1                ; offset: $0 (0)        ;  the ID of the previous gamma table 
  619. csNextGammaID             ds.l    1                ; offset: $4 (4)        ;  the ID of the next gamma table 
  620. csGammaPtr                 ds.l    1                ; offset: $8 (8)        ;  Ptr to a gamma table data 
  621. csReserved                 ds.l    1                ; offset: $C (12)        ;  Reserved 
  622. sizeof                     EQU *                    ; size:   $10 (16)
  623.                         ENDR
  624. ; typedef struct VDGammaInfoRec *        VDGammaInfoPtr
  625.  
  626. VDGetGammaListRec        RECORD 0
  627. csPreviousGammaTableID     ds.l    1                ; offset: $0 (0)        ;  ID of the previous gamma table 
  628. csGammaTableID             ds.l    1                ; offset: $4 (4)        ;  ID of the gamma table following csPreviousDisplayModeID 
  629. csGammaTableSize         ds.l    1                ; offset: $8 (8)        ;  Size of the gamma table in bytes 
  630. csGammaTableName         ds.l    1                ; offset: $C (12)        ;  Gamma table name (c-string) 
  631. sizeof                     EQU *                    ; size:   $10 (16)
  632.                         ENDR
  633. ; typedef struct VDGetGammaListRec *    VDGetGammaListPtr
  634.  
  635. VDRetrieveGammaRec        RECORD 0
  636. csGammaTableID             ds.l    1                ; offset: $0 (0)        ;  ID of gamma table to retrieve 
  637. csGammaTablePtr             ds.l    1                ; offset: $4 (4)        ;  Location to copy desired gamma to 
  638. sizeof                     EQU *                    ; size:   $8 (8)
  639.                         ENDR
  640. ; typedef struct VDRetrieveGammaRec *    VDRetrieveGammaPtr
  641.  
  642. VDSetHardwareCursorRec    RECORD 0
  643. csCursorRef                 ds.l    1                ; offset: $0 (0)        ;  reference to cursor data 
  644. csReserved1                 ds.l    1                ; offset: $4 (4)        ;  reserved for future use 
  645. csReserved2                 ds.l    1                ; offset: $8 (8)        ;  should be ignored 
  646. sizeof                     EQU *                    ; size:   $C (12)
  647.                         ENDR
  648. ; typedef struct VDSetHardwareCursorRec * VDSetHardwareCursorPtr
  649.  
  650. VDDrawHardwareCursorRec    RECORD 0
  651. csCursorX                 ds.l    1                ; offset: $0 (0)        ;  x coordinate 
  652. csCursorY                 ds.l    1                ; offset: $4 (4)        ;  y coordinate 
  653. csCursorVisible             ds.l    1                ; offset: $8 (8)        ;  true if cursor is must be visible 
  654. csReserved1                 ds.l    1                ; offset: $C (12)        ;  reserved for future use 
  655. csReserved2                 ds.l    1                ; offset: $10 (16)        ;  should be ignored 
  656. sizeof                     EQU *                    ; size:   $14 (20)
  657.                         ENDR
  658. ; typedef struct VDDrawHardwareCursorRec * VDDrawHardwareCursorPtr
  659.  
  660. VDSupportsHardwareCursorRec RECORD 0
  661. csSupportsHardwareCursor  ds.l    1                ; offset: $0 (0)
  662. ;  true if hardware cursor is supported 
  663. csReserved1                 ds.l    1                ; offset: $4 (4)        ;  reserved for future use 
  664. csReserved2                 ds.l    1                ; offset: $8 (8)        ;  must be zero 
  665. sizeof                     EQU *                    ; size:   $C (12)
  666.                         ENDR
  667. ; typedef struct VDSupportsHardwareCursorRec * VDSupportsHardwareCursorPtr
  668.  
  669. VDHardwareCursorDrawStateRec RECORD 0
  670. csCursorX                 ds.l    1                ; offset: $0 (0)        ;  x coordinate 
  671. csCursorY                 ds.l    1                ; offset: $4 (4)        ;  y coordinate 
  672. csCursorVisible             ds.l    1                ; offset: $8 (8)        ;  true if cursor is visible 
  673. csCursorSet                 ds.l    1                ; offset: $C (12)        ;  true if cursor successfully set by last set control call 
  674. csReserved1                 ds.l    1                ; offset: $10 (16)        ;  reserved for future use 
  675. csReserved2                 ds.l    1                ; offset: $14 (20)        ;  must be zero 
  676. sizeof                     EQU *                    ; size:   $18 (24)
  677.                         ENDR
  678. ; typedef struct VDHardwareCursorDrawStateRec * VDHardwareCursorDrawStatePtr
  679.  
  680. VDConvolutionInfoRec    RECORD 0
  681. csDisplayModeID             ds.l    1                ; offset: $0 (0)        ;  the ID of the resolution we want info on 
  682. csDepthMode                 ds.w    1                ; offset: $4 (4)        ;  The bit depth we want the info on (0x80 based) 
  683. csPage                     ds.l    1                ; offset: $6 (6)
  684. csFlags                     ds.l    1                ; offset: $A (10)
  685. csReserved                 ds.l    1                ; offset: $E (14)
  686. sizeof                     EQU *                    ; size:   $12 (18)
  687.                         ENDR
  688. ; typedef struct VDConvolutionInfoRec *    VDConvolutionInfoPtr
  689.  
  690. VDPowerStateRec            RECORD 0
  691. powerState                 ds.l    1                ; offset: $0 (0)
  692. powerFlags                 ds.l    1                ; offset: $4 (4)
  693. powerReserved1             ds.l    1                ; offset: $8 (8)
  694. powerReserved2             ds.l    1                ; offset: $C (12)
  695. sizeof                     EQU *                    ; size:   $10 (16)
  696.                         ENDR
  697. ; typedef struct VDPowerStateRec *        VDPowerStatePtr
  698.  
  699. ;    Private Data to video drivers.
  700. ;    
  701. ;    In versions of MacOS with multiple address spaces (System 8), the OS 
  702. ;    must know the extent of parameters in order to move them between the caller
  703. ;    and driver.  The old private-selector model for video drivers does not have
  704. ;    this information so:
  705. ;    
  706. ;    For post-7.x Systems private calls should be implemented using the cscPrivateCall
  707. ;
  708.  
  709. VDPrivateSelectorDataRec RECORD 0
  710. privateParameters         ds.l    1                ; offset: $0 (0)        ;  Caller's parameters
  711. privateParametersSize     ds.l    1                ; offset: $4 (4)        ;  Size of data sent from caller to driver
  712. privateResults             ds.l    1                ; offset: $8 (8)        ;  Caller's return area. Can be nil, or same as privateParameters.
  713. privateResultsSize         ds.l    1                ; offset: $C (12)        ;  Size of data driver returns to caller. Can be nil, or same as privateParametersSize.
  714. sizeof                     EQU *                    ; size:   $10 (16)
  715.                         ENDR
  716. VDPrivateSelectorRec    RECORD 0
  717. reserved                 ds.l    1                ; offset: $0 (0)        ;  Reserved (set to 0). 
  718. data                     ds        VDPrivateSelectorDataRec ; offset: $4 (4) <-- really an array of length one
  719. sizeof                     EQU *                    ; size:   $14 (20)
  720.                         ENDR
  721. VDDDCBlockRec            RECORD 0
  722. ddcBlockNumber             ds.l    1                ; offset: $0 (0)        ;  Input -- DDC EDID (Extended Display Identification Data) number (1-based) 
  723. ddcBlockType             ds.l    1                ; offset: $4 (4)        ;  Input -- DDC block type (EDID/VDIF) 
  724. ddcFlags                 ds.l    1                ; offset: $8 (8)        ;  Input -- DDC Flags
  725. ddcReserved                 ds.l    1                ; offset: $C (12)        ;  Reserved 
  726. ddcBlockData             ds.b    128                ; offset: $10 (16)        ;  Output -- DDC EDID/VDIF data (kDDCBlockSize) 
  727. sizeof                     EQU *                    ; size:   $90 (144)
  728.                         ENDR
  729. ; typedef struct VDDDCBlockRec *        VDDDCBlockPtr
  730.  
  731. ; typedef UInt32                         VDClutBehavior
  732.  
  733. ; typedef VDClutBehavior *                VDClutBehaviorPtr
  734.  
  735.  
  736. kSetClutAtSetEntries            EQU        0                    ; SetEntries behavior is to update clut during SetEntries call
  737. kSetClutAtVBL                    EQU        1                    ; SetEntries behavior is to upate clut at next vbl
  738.  
  739.     ENDIF ; __VIDEO__ 
  740.  
  741.